package simple.array;

/**
 * <a href="https://leetcode.cn/problems/valid-mountain-array/">941. 有效的山脉数组</a>
 * 给定一个整数数组 arr，如果它是有效的山脉数组就返回 true，否则返回 false。
 * 让我们回顾一下，如果 arr 满足下述条件，那么它是一个山脉数组：
 *   arr.length >= 3
 *   在 0 < i < arr.length - 1 条件下，存在 i 使得：
 *     arr[0] < arr[1] < ... arr[i-1] < arr[i]
 *     arr[i] > arr[i+1] > ... > arr[arr.length - 1]
 * 示例 1：
 *   输入：arr = [2,1]
 *   输出：false
 * 示例 2：
 *   输入：arr = [3,5,5]
 *   输出：false
 * 示例 3：
 *   输入：arr = [0,3,2,1]
 *   输出：true
 * 提示：
 *   1 <= arr.length <= 104
 *   0 <= arr[i] <= 104
 * @author 刘学松
 * @date 2023-06-30 15:01
 */
public class 有效的山脉数组 {
    public boolean validMountainArray(int[] arr) {
        int length = arr.length;
        if (length < 3) {
            return false;
        }
        int i = 1;
        while (i < length && arr[i-1] < arr[i]) {
            ++i;
        }
        if (i==1 || i == length) {
            return false;
        }
        while (i < length && arr[i-1] > arr[i]) {
            ++i;
        }
        return i == length;
    }
}
